package com.java.net;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;

/**
 * 构建一个Browser对象，基于此对象向某些服务器发送请求，
 * 并读取服务端的响应。
 */
public class Browser {
    public static void main(String[] args) throws IOException {
        //1.定义要访问的服务地址和端口
        String host="www.baidu.com";
        int port=80;
        //2.创建服务访问对象(java中为socket对象)
        Socket socket=new Socket(host, port);
        //3.创建网络输入和输出流对象
        OutputStream out=socket.getOutputStream();
        InputStream in=socket.getInputStream();
        //4.基于输出流对象(OutputStream)向服务端写数据，表示发送请求。
        out.write("GET /index.html HTTP/1.1\n\r".getBytes());//注意这里的空格
        out.write("\n\r".getBytes());
        out.flush();

        //5.基于输入流对象(InputStream)读取服务端响应的结果
        byte[] buf=new byte[1024];
        int len=-1;
        while((len=in.read(buf))!=-1){
            System.out.println(new String(buf,0,len));
        }
        //6.释放资源
        in.close();
        out.close();
    }
}
